<?php

namespace backend\models;

use common\models\business\MetaCategoryBusiness;
use common\models\db\MetaCategory;
use common\models\output\Response;
use Yii;
use yii\base\Model;

class MetaCategoryForm extends Model {

    public $id;
    public $title;
    public $description;
    public $keyword;
    public $createEmail;
    public $updateEmail;

    public function rules() {
        return [
            [['id', 'title', 'keyword'], 'required', 'message' => '{attribute} không được để trống!'],
            [['id'], 'integer', 'message' => '{attribute} phải là số !'],
            [['keyword', 'description', 'title'], 'string', 'message' => '{attribute} phải là ký tự !'],
            [['createEmail', 'updateEmail'], 'email', 'message' => '{attribute} không đúng định dạng'],
        ];
    }

    public function attributeLabels() {
        return [
            'id' => "Mã danh mục",
            'title' => "Tiêu đề",
            'description' => "Mô tả",
            'keyword' => "Từ khóa",
            'createEmail' => "Email người tạo",
            'updateEmail' => "Email người sửa",
        ];
    }

    public function save() {
        if (!$this->validate()) {
            return new Response(false, "Dữ liệu không hợp lệ !", $this->errors);
        }
        $metacategory = MetaCategoryBusiness::get($this->id);
        if (empty($metacategory)) {
            $metacategory = new MetaCategory();
            $metacategory->id = $this->id;
            $metacategory->createEmail = Yii::$app->user->getId();
            $metacategory->createTime = time();
        }
        $metacategory->title = $this->title;
        $metacategory->description = $this->description;
        $metacategory->keyword = $this->keyword;
        $metacategory->updateTime = time();
        $metacategory->updateEmail = Yii::$app->user->getId();
        if (!$metacategory->save(false)) {
            return new Response(false,'Không lưu được vào cơ sở dữ liệu',$metacategory->errors);
        }
        return new Response(true,'Lưu thành công',$metacategory);
        
    }

}
